我的世界1.20及以上字体材质包修复[Java Edition]

您所在的位置:网站首页 字体包 英文 我的世界1.20及以上字体材质包修复[Java Edition]

我的世界1.20及以上字体材质包修复[Java Edition]

2023-12-12 00:13| 来源: 网络整理| 查看: 265

在mc1.20版本之后,mc的字体资源包格式发生了变化,  ,使得部分修改了字体的资源包失效

,具体表现为字体包装上后,资源包不起作用

问题

这里以“方正字体”材质举个例子

感谢@Surisen提供的资源包

1.20.1的效果图

我们可以看到的是除了数字和英文外,所有的中文全部是原版文字

原因是在23w17a版本中,unifont不再由位图(bitmap)形式存储了而是以hex文件存储,

这一改动最终在1.20中实装,导致了修改图片的这种字体包形式失效

字体

加入了unihex字形提供器,用于读取Unifont HEX文件。

所有字形的高度均为16像素。

所有字形的宽度可为8、16、24、32像素。

每一行由两个十六进制数字组成,由:分隔。

第一个数字代表字符码点,需要有4、5或6位。

第二个数字为字形的比特流。

渲染时字形左右的空像素列会被移除。

可以通过size_overrides设置自定义字形宽度。

HEX格式包含了字体的位图字形。

解决方法

既然原版不再提供对应的json文件,我们就得自己来构建对应的json文件来提供字体的索引,

我写了一小段python程序来帮助我生成这个json文本,python程序我会放在附录里,json由于实在过长就不放在这里了,大家可以到以下地址去下载

蓝奏云:https://fuyuan360.lanzouj.com/b01vp654d   密码:0000

逐步教程

          这里我们默认您已学会浏览器,文件管理器,解压,压缩等基本操作,并且会安装mc的资源包

1.到网站中下载default.zip解压获得default.json文件

网页截图

2.解压字体资源包文件,这个文件一般存在于.minecraft\versions\版本名称\resourcepacks中,这里我已经解压好了

资源包文件夹

打开  资源包名\assets\minecraft\font文件夹

font文件夹截图

3.将第1步中解压得的default.json(不是压缩包)拖入文件夹内

font文件夹

4,打开游戏,测试

更改后效果

如果看上去还是没有效果,那么请到选项->语言中,把左下角的 “强制使用Unicode字体:开”调整为"强制使用Unicode字体:关"即可

语言设置界面附录

这个是生成default.json的python程序,有兴趣的可以研究下

import json def chars(start_number: int) -> list:    """生成bitmap格式字体的chars属性    Args:        start_number (int): unifont的字体页码和对应Unicode的前2位    Returns:        chars: 以16*16编排的Unicode列表    """    chars = []    list1 = []  # 一个用来存储0-255的16进制编码    start_number = str(start_number)    for number in range(0, 256):        end_number = hex(number)[2:].zfill(2)        # 对16进制数字切片去除0x前缀,不足两位的前面补充数字0        number = f"\\u{start_number}{end_number}"        list1.append(number)    for i in range(0, len(list1), 16):        l_chr = ''.join(list1[i:i+16])        chars.append(l_chr)    return chars data_list = [] for i in range(78, 160):    # 78是4e,160是9f,\u4e00到u9fff是中日韩越统一表意文字的Unicode编码范围    hex_i = hex(i)[2:]    default_json = {"providers": ""}    data = {        "type": "bitmap",        "ascent": 7,        "file": "value",        "chars": "value"    }    # https://wiki.biligame.com/mc/资源包#字体    file_path = f"minecraft:font/unicode_page_{hex_i}.png"    data['file'] = file_path    data["chars"] = chars(hex_i)    data_list.append(data)    default_json["providers"] = data_list with open("./default.json", "w") as f:    json.dump(default_json, f)    # 写入json with open("./default.json", "r") as f:    # 以只读形式打开,将json以字符串形式读取,替换其中的"\\"为"\"    default_json_text = f.read()    write_text = default_json_text.replace("\\\\", "\\")    f.close() with open("./default.json", "w") as f:    # 将替换后的文本再次写入文件中    f.write(write_text)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3